home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / Components.a < prev    next >
Text File  |  1996-05-01  |  16KB  |  595 lines

  1. ;
  2. ;    File:        Components.a
  3. ;
  4. ;    Contains:    Component Manager Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  19. __COMPONENTS__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  25.     include 'MixedMode.a'
  26.     ENDIF
  27.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  28.  
  29. kAppleManufacturer                EQU        'appl'                ; Apple supplied components 
  30. kComponentResourceType            EQU        'thng'                ; a components resource type 
  31.  
  32. kAnyComponentType                EQU        0
  33. kAnyComponentSubType            EQU        0
  34. kAnyComponentManufacturer        EQU        0
  35. kAnyComponentFlagsMask            EQU        0
  36.  
  37. cmpWantsRegisterMessage            EQU        $80000000
  38.  
  39. kComponentOpenSelect            EQU        -1                    ; ComponentInstance for this open 
  40. kComponentCloseSelect            EQU        -2                    ; ComponentInstance for this close 
  41. kComponentCanDoSelect            EQU        -3                    ; selector # being queried 
  42. kComponentVersionSelect            EQU        -4                    ; no params 
  43. kComponentRegisterSelect        EQU        -5                    ; no params 
  44. kComponentTargetSelect            EQU        -6                    ; ComponentInstance for top of call chain 
  45. kComponentUnregisterSelect        EQU        -7                    ; no params 
  46. kComponentGetMPWorkFunctionSelect EQU    -8                    ; some params 
  47. ;  Component Resource Extension flags 
  48.  
  49. componentDoAutoVersion            EQU        $01
  50. componentWantsUnregister        EQU        $02
  51. componentAutoVersionIncludeFlags EQU    $04
  52. componentHasMultiplePlatforms    EQU        $08
  53. ;  Set Default Component flags 
  54.  
  55. defaultComponentIdentical        EQU        0
  56. defaultComponentAnyFlags        EQU        1
  57. defaultComponentAnyManufacturer    EQU        2
  58. defaultComponentAnySubType        EQU        4
  59. defaultComponentAnyFlagsAnyManufacturer EQU 3
  60. defaultComponentAnyFlagsAnyManufacturerAnySubType EQU 7
  61. ;  RegisterComponentResource flags 
  62.  
  63. registerComponentGlobal            EQU        1
  64. registerComponentNoDuplicates    EQU        2
  65. registerComponentAfterExisting    EQU        4
  66. ComponentDescription    RECORD 0
  67. componentType             ds.l    1                ; offset: $0 (0)        ;  A unique 4-byte code indentifying the command set 
  68. componentSubType         ds.l    1                ; offset: $4 (4)        ;  Particular flavor of this instance 
  69. componentManufacturer     ds.l    1                ; offset: $8 (8)        ;  Vendor indentification 
  70. componentFlags             ds.l    1                ; offset: $C (12)        ;  8 each for Component,Type,SubType,Manuf/revision 
  71. componentFlagsMask         ds.l    1                ; offset: $10 (16)        ;  Mask for specifying which flags to consider in search, zero during registration 
  72. sizeof                     EQU *                    ; size:   $14 (20)
  73.                         ENDR
  74. ResourceSpec            RECORD 0
  75. resType                     ds.l    1                ; offset: $0 (0)        ;  4-byte code  
  76. resID                     ds.w    1                ; offset: $4 (4)
  77. sizeof                     EQU *                    ; size:   $6 (6)
  78.                         ENDR
  79. ComponentResource        RECORD 0
  80. cd                         ds        ComponentDescription ; offset: $0 (0)    ;  Registration parameters 
  81. component                 ds        ResourceSpec    ; offset: $14 (20)        ;  resource where Component code is found 
  82. componentName             ds        ResourceSpec    ; offset: $1A (26)        ;  name string resource 
  83. componentInfo             ds        ResourceSpec    ; offset: $20 (32)        ;  info string resource 
  84. componentIcon             ds        ResourceSpec    ; offset: $26 (38)        ;  icon resource 
  85. sizeof                     EQU *                    ; size:   $2C (44)
  86.                         ENDR
  87. ; typedef struct ComponentResource *    ComponentResourcePtr
  88.  
  89. ; typedef ComponentResourcePtr *        ComponentResourceHandle
  90.  
  91. ComponentPlatformInfo    RECORD 0
  92. componentFlags             ds.l    1                ; offset: $0 (0)        ;  flags of Component 
  93. component                 ds        ResourceSpec    ; offset: $4 (4)        ;  resource where Component code is found 
  94. platformType             ds.w    1                ; offset: $A (10)        ;  gestaltSysArchitecture result 
  95. sizeof                     EQU *                    ; size:   $C (12)
  96.                         ENDR
  97. ComponentResourceExtension RECORD 0
  98. componentVersion         ds.l    1                ; offset: $0 (0)        ;  version of Component 
  99. componentRegisterFlags     ds.l    1                ; offset: $4 (4)        ;  flags for registration 
  100. componentIconFamily         ds.w    1                ; offset: $8 (8)        ;  resource id of Icon Family 
  101. sizeof                     EQU *                    ; size:   $A (10)
  102.                         ENDR
  103. ComponentPlatformInfoArray RECORD 0
  104. count                     ds.l    1                ; offset: $0 (0)
  105. platformArray             ds        ComponentPlatformInfo ; offset: $4 (4) <-- really an array of length one
  106. sizeof                     EQU *                    ; size:   $10 (16)
  107.                         ENDR
  108. ExtComponentResource    RECORD 0
  109. cd                         ds        ComponentDescription ; offset: $0 (0)    ;  registration parameters 
  110. component                 ds        ResourceSpec    ; offset: $14 (20)        ;  resource where Component code is found 
  111. componentName             ds        ResourceSpec    ; offset: $1A (26)        ;  name string resource 
  112. componentInfo             ds        ResourceSpec    ; offset: $20 (32)        ;  info string resource 
  113. componentIcon             ds        ResourceSpec    ; offset: $26 (38)        ;  icon resource 
  114. componentVersion         ds.l    1                ; offset: $2C (44)        ;  version of Component 
  115. componentRegisterFlags     ds.l    1                ; offset: $30 (48)        ;  flags for registration 
  116. componentIconFamily         ds.w    1                ; offset: $34 (52)        ;  resource id of Icon Family 
  117. count                     ds.l    1                ; offset: $36 (54)        ;  elements in platformArray 
  118. platformArray             ds        ComponentPlatformInfo ; offset: $3A (58) <-- really an array of length one
  119. sizeof                     EQU *                    ; size:   $46 (70)
  120.                         ENDR
  121. ComponentParameters        RECORD 0
  122. flags                     ds.b    1                ; offset: $0 (0)        ;  call modifiers: sync/async, deferred, immed, etc 
  123. paramSize                 ds.b    1                ; offset: $1 (1)        ;  size in bytes of actual parameters passed to this call 
  124. what                     ds.w    1                ; offset: $2 (2)        ;  routine selector, negative for Component management calls 
  125. params                     ds.l    1                ; offset: $4 (4) <-- really an array of length one ;  actual parameters for the indicated routine 
  126. sizeof                     EQU *                    ; size:   $8 (8)
  127.                         ENDR
  128. ComponentRecord            RECORD 0
  129. data                     ds.l    1                ; offset: $0 (0) <-- really an array of length one
  130. sizeof                     EQU *                    ; size:   $4 (4)
  131.                         ENDR
  132. ; typedef struct ComponentRecord *        Component
  133.  
  134. ComponentInstanceRecord    RECORD 0
  135. data                     ds.l    1                ; offset: $0 (0) <-- really an array of length one
  136. sizeof                     EQU *                    ; size:   $4 (4)
  137.                         ENDR
  138. ; typedef struct ComponentInstanceRecord * ComponentInstance
  139.  
  140. ; typedef long                             ComponentResult
  141.  
  142.  
  143. mpWorkFlagDoWork                EQU        $01
  144. mpWorkFlagDoCompletion            EQU        $02
  145. mpWorkFlagCopyWorkBlock            EQU        $04
  146. mpWorkFlagDontBlock                EQU        $08
  147. mpWorkFlagGetProcessorCount        EQU        $10
  148. ComponentMPWorkFunctionHeaderRecord RECORD 0
  149. headerSize                 ds.l    1                ; offset: $0 (0)
  150. recordSize                 ds.l    1                ; offset: $4 (4)
  151. workFlags                 ds.l    1                ; offset: $8 (8)
  152. processorCount             ds.w    1                ; offset: $C (12)
  153. unused                     ds.w    1                ; offset: $E (14)
  154. sizeof                     EQU *                    ; size:   $10 (16)
  155.                         ENDR
  156. ; typedef struct ComponentMPWorkFunctionHeaderRecord * ComponentMPWorkFunctionHeaderRecordPtr
  157.  
  158. ; typedef ComponentRoutineProcPtr         ComponentRoutine
  159.  
  160. ;
  161. ;    The parameter list for each ComponentFunction is unique. It is 
  162. ;    therefore up to users to create the appropriate procInfo for their 
  163. ;    own ComponentFunctions where necessary.
  164. ;
  165. ; typedef UniversalProcPtr                 ComponentFunctionUPP
  166.  
  167. ;  Component Database Add, Delete, and Query Routines 
  168. ;
  169. ; pascal Component RegisterComponent(ComponentDescription *cd, ComponentRoutineUPP componentEntryPoint, short global, Handle componentName, Handle componentInfo, Handle componentIcon)
  170. ;
  171.     IF ¨ GENERATINGCFM THEN
  172.         Macro
  173.         _RegisterComponent
  174.             moveq               #1,D0
  175.             dc.w                $A82A
  176.         EndM
  177.     ELSE
  178.         IMPORT_CFM_FUNCTION RegisterComponent
  179.     ENDIF
  180.  
  181. ;
  182. ; pascal Component RegisterComponentResource(ComponentResourceHandle tr, short global)
  183. ;
  184.     IF ¨ GENERATINGCFM THEN
  185.         Macro
  186.         _RegisterComponentResource
  187.             moveq               #18,D0
  188.             dc.w                $A82A
  189.         EndM
  190.     ELSE
  191.         IMPORT_CFM_FUNCTION RegisterComponentResource
  192.     ENDIF
  193.  
  194. ;
  195. ; pascal OSErr UnregisterComponent(Component aComponent)
  196. ;
  197.     IF ¨ GENERATINGCFM THEN
  198.         Macro
  199.         _UnregisterComponent
  200.             moveq               #2,D0
  201.             dc.w                $A82A
  202.         EndM
  203.     ELSE
  204.         IMPORT_CFM_FUNCTION UnregisterComponent
  205.     ENDIF
  206.  
  207. ;
  208. ; pascal Component FindNextComponent(Component aComponent, ComponentDescription *looking)
  209. ;
  210.     IF ¨ GENERATINGCFM THEN
  211.         Macro
  212.         _FindNextComponent
  213.             moveq               #4,D0
  214.             dc.w                $A82A
  215.         EndM
  216.     ELSE
  217.         IMPORT_CFM_FUNCTION FindNextComponent
  218.     ENDIF
  219.  
  220. ;
  221. ; pascal long CountComponents(ComponentDescription *looking)
  222. ;
  223.     IF ¨ GENERATINGCFM THEN
  224.         Macro
  225.         _CountComponents
  226.             moveq               #3,D0
  227.             dc.w                $A82A
  228.         EndM
  229.     ELSE
  230.         IMPORT_CFM_FUNCTION CountComponents
  231.     ENDIF
  232.  
  233. ;
  234. ; pascal OSErr GetComponentInfo(Component aComponent, ComponentDescription *cd, Handle componentName, Handle componentInfo, Handle componentIcon)
  235. ;
  236.     IF ¨ GENERATINGCFM THEN
  237.         Macro
  238.         _GetComponentInfo
  239.             moveq               #5,D0
  240.             dc.w                $A82A
  241.         EndM
  242.     ELSE
  243.         IMPORT_CFM_FUNCTION GetComponentInfo
  244.     ENDIF
  245.  
  246. ;
  247. ; pascal long GetComponentListModSeed(void )
  248. ;
  249.     IF ¨ GENERATINGCFM THEN
  250.         Macro
  251.         _GetComponentListModSeed
  252.             moveq               #6,D0
  253.             dc.w                $A82A
  254.         EndM
  255.     ELSE
  256.         IMPORT_CFM_FUNCTION GetComponentListModSeed
  257.     ENDIF
  258.  
  259. ;  Component Instance Allocation and dispatch routines 
  260. ;
  261. ; pascal ComponentInstance OpenComponent(Component aComponent)
  262. ;
  263.     IF ¨ GENERATINGCFM THEN
  264.         Macro
  265.         _OpenComponent
  266.             moveq               #7,D0
  267.             dc.w                $A82A
  268.         EndM
  269.     ELSE
  270.         IMPORT_CFM_FUNCTION OpenComponent
  271.     ENDIF
  272.  
  273. ;
  274. ; pascal OSErr CloseComponent(ComponentInstance aComponentInstance)
  275. ;
  276.     IF ¨ GENERATINGCFM THEN
  277.         Macro
  278.         _CloseComponent
  279.             moveq               #8,D0
  280.             dc.w                $A82A
  281.         EndM
  282.     ELSE
  283.         IMPORT_CFM_FUNCTION CloseComponent
  284.     ENDIF
  285.  
  286. ;
  287. ; pascal OSErr GetComponentInstanceError(ComponentInstance aComponentInstance)
  288. ;
  289.     IF ¨ GENERATINGCFM THEN
  290.         Macro
  291.         _GetComponentInstanceError
  292.             moveq               #10,D0
  293.             dc.w                $A82A
  294.         EndM
  295.     ELSE
  296.         IMPORT_CFM_FUNCTION GetComponentInstanceError
  297.     ENDIF
  298.  
  299. ;  Direct calls to the Components 
  300. ;
  301. ; pascal long ComponentFunctionImplemented(ComponentInstance ci, short ftnNumber)
  302. ;
  303.     IF ¨ GENERATINGCFM THEN
  304.         Macro
  305.         _ComponentFunctionImplemented
  306.             move.l              #$0002FFFD,-(sp)
  307.             moveq               #0,D0
  308.             dc.w                $A82A
  309.         EndM
  310.     ELSE
  311.         IMPORT_CFM_FUNCTION ComponentFunctionImplemented
  312.     ENDIF
  313.  
  314. ;
  315. ; pascal long GetComponentVersion(ComponentInstance ci)
  316. ;
  317.     IF ¨ GENERATINGCFM THEN
  318.         Macro
  319.         _GetComponentVersion
  320.             move.l              #$0000FFFC,-(sp)
  321.             moveq               #0,D0
  322.             dc.w                $A82A
  323.         EndM
  324.     ELSE
  325.         IMPORT_CFM_FUNCTION GetComponentVersion
  326.     ENDIF
  327.  
  328. ;
  329. ; pascal long ComponentSetTarget(ComponentInstance ci, ComponentInstance target)
  330. ;
  331.     IF ¨ GENERATINGCFM THEN
  332.         Macro
  333.         _ComponentSetTarget
  334.             move.l              #$0004FFFA,-(sp)
  335.             moveq               #0,D0
  336.             dc.w                $A82A
  337.         EndM
  338.     ELSE
  339.         IMPORT_CFM_FUNCTION ComponentSetTarget
  340.     ENDIF
  341.  
  342. ;  Component Management routines 
  343. ;
  344. ; pascal void SetComponentInstanceError(ComponentInstance aComponentInstance, OSErr theError)
  345. ;
  346.     IF ¨ GENERATINGCFM THEN
  347.         Macro
  348.         _SetComponentInstanceError
  349.             moveq               #11,D0
  350.             dc.w                $A82A
  351.         EndM
  352.     ELSE
  353.         IMPORT_CFM_FUNCTION SetComponentInstanceError
  354.     ENDIF
  355.  
  356. ;
  357. ; pascal long GetComponentRefcon(Component aComponent)
  358. ;
  359.     IF ¨ GENERATINGCFM THEN
  360.         Macro
  361.         _GetComponentRefcon
  362.             moveq               #16,D0
  363.             dc.w                $A82A
  364.         EndM
  365.     ELSE
  366.         IMPORT_CFM_FUNCTION GetComponentRefcon
  367.     ENDIF
  368.  
  369. ;
  370. ; pascal void SetComponentRefcon(Component aComponent, long theRefcon)
  371. ;
  372.     IF ¨ GENERATINGCFM THEN
  373.         Macro
  374.         _SetComponentRefcon
  375.             moveq               #17,D0
  376.             dc.w                $A82A
  377.         EndM
  378.     ELSE
  379.         IMPORT_CFM_FUNCTION SetComponentRefcon
  380.     ENDIF
  381.  
  382. ;
  383. ; pascal short OpenComponentResFile(Component aComponent)
  384. ;
  385.     IF ¨ GENERATINGCFM THEN
  386.         Macro
  387.         _OpenComponentResFile
  388.             moveq               #21,D0
  389.             dc.w                $A82A
  390.         EndM
  391.     ELSE
  392.         IMPORT_CFM_FUNCTION OpenComponentResFile
  393.     ENDIF
  394.  
  395. ;
  396. ; pascal OSErr CloseComponentResFile(short refnum)
  397. ;
  398.     IF ¨ GENERATINGCFM THEN
  399.         Macro
  400.         _CloseComponentResFile
  401.             moveq               #24,D0
  402.             dc.w                $A82A
  403.         EndM
  404.     ELSE
  405.         IMPORT_CFM_FUNCTION CloseComponentResFile
  406.     ENDIF
  407.  
  408. ;  Component Instance Management routines 
  409. ;
  410. ; pascal Handle GetComponentInstanceStorage(ComponentInstance aComponentInstance)
  411. ;
  412.     IF ¨ GENERATINGCFM THEN
  413.         Macro
  414.         _GetComponentInstanceStorage
  415.             moveq               #12,D0
  416.             dc.w                $A82A
  417.         EndM
  418.     ELSE
  419.         IMPORT_CFM_FUNCTION GetComponentInstanceStorage
  420.     ENDIF
  421.  
  422. ;
  423. ; pascal void SetComponentInstanceStorage(ComponentInstance aComponentInstance, Handle theStorage)
  424. ;
  425.     IF ¨ GENERATINGCFM THEN
  426.         Macro
  427.         _SetComponentInstanceStorage
  428.             moveq               #13,D0
  429.             dc.w                $A82A
  430.         EndM
  431.     ELSE
  432.         IMPORT_CFM_FUNCTION SetComponentInstanceStorage
  433.     ENDIF
  434.  
  435. ;
  436. ; pascal long GetComponentInstanceA5(ComponentInstance aComponentInstance)
  437. ;
  438.     IF ¨ GENERATINGCFM THEN
  439.         Macro
  440.         _GetComponentInstanceA5
  441.             moveq               #14,D0
  442.             dc.w                $A82A
  443.         EndM
  444.     ELSE
  445.         IMPORT_CFM_FUNCTION GetComponentInstanceA5
  446.     ENDIF
  447.  
  448. ;
  449. ; pascal void SetComponentInstanceA5(ComponentInstance aComponentInstance, long theA5)
  450. ;
  451.     IF ¨ GENERATINGCFM THEN
  452.         Macro
  453.         _SetComponentInstanceA5
  454.             moveq               #15,D0
  455.             dc.w                $A82A
  456.         EndM
  457.     ELSE
  458.         IMPORT_CFM_FUNCTION SetComponentInstanceA5
  459.     ENDIF
  460.  
  461. ;
  462. ; pascal long CountComponentInstances(Component aComponent)
  463. ;
  464.     IF ¨ GENERATINGCFM THEN
  465.         Macro
  466.         _CountComponentInstances
  467.             moveq               #19,D0
  468.             dc.w                $A82A
  469.         EndM
  470.     ELSE
  471.         IMPORT_CFM_FUNCTION CountComponentInstances
  472.     ENDIF
  473.  
  474. ;  Useful helper routines for convenient method dispatching 
  475. ;
  476. ; pascal long CallComponentFunction(ComponentParameters *params, ComponentFunctionUPP func)
  477. ;
  478.     IF ¨ GENERATINGCFM THEN
  479.         Macro
  480.         _CallComponentFunction
  481.             moveq               #-1,D0
  482.             dc.w                $A82A
  483.         EndM
  484.     ELSE
  485.         IMPORT_CFM_FUNCTION CallComponentFunction
  486.     ENDIF
  487.  
  488. ;
  489. ; pascal long CallComponentFunctionWithStorage(Handle storage, ComponentParameters *params, ComponentFunctionUPP func)
  490. ;
  491.     IF ¨ GENERATINGCFM THEN
  492.         Macro
  493.         _CallComponentFunctionWithStorage
  494.             moveq               #-1,D0
  495.             dc.w                $A82A
  496.         EndM
  497.     ELSE
  498.         IMPORT_CFM_FUNCTION CallComponentFunctionWithStorage
  499.     ENDIF
  500.  
  501. ;
  502. ; pascal long DelegateComponentCall(ComponentParameters *originalParams, ComponentInstance ci)
  503. ;
  504.     IF ¨ GENERATINGCFM THEN
  505.         Macro
  506.         _DelegateComponentCall
  507.             moveq               #36,D0
  508.             dc.w                $A82A
  509.         EndM
  510.     ELSE
  511.         IMPORT_CFM_FUNCTION DelegateComponentCall
  512.     ENDIF
  513.  
  514. ;
  515. ; pascal OSErr SetDefaultComponent(Component aComponent, short flags)
  516. ;
  517.     IF ¨ GENERATINGCFM THEN
  518.         Macro
  519.         _SetDefaultComponent
  520.             moveq               #30,D0
  521.             dc.w                $A82A
  522.         EndM
  523.     ELSE
  524.         IMPORT_CFM_FUNCTION SetDefaultComponent
  525.     ENDIF
  526.  
  527. ;
  528. ; pascal ComponentInstance OpenDefaultComponent(OSType componentType, OSType componentSubType)
  529. ;
  530.     IF ¨ GENERATINGCFM THEN
  531.         Macro
  532.         _OpenDefaultComponent
  533.             moveq               #33,D0
  534.             dc.w                $A82A
  535.         EndM
  536.     ELSE
  537.         IMPORT_CFM_FUNCTION OpenDefaultComponent
  538.     ENDIF
  539.  
  540. ;
  541. ; pascal Component CaptureComponent(Component capturedComponent, Component capturingComponent)
  542. ;
  543.     IF ¨ GENERATINGCFM THEN
  544.         Macro
  545.         _CaptureComponent
  546.             moveq               #28,D0
  547.             dc.w                $A82A
  548.         EndM
  549.     ELSE
  550.         IMPORT_CFM_FUNCTION CaptureComponent
  551.     ENDIF
  552.  
  553. ;
  554. ; pascal OSErr UncaptureComponent(Component aComponent)
  555. ;
  556.     IF ¨ GENERATINGCFM THEN
  557.         Macro
  558.         _UncaptureComponent
  559.             moveq               #29,D0
  560.             dc.w                $A82A
  561.         EndM
  562.     ELSE
  563.         IMPORT_CFM_FUNCTION UncaptureComponent
  564.     ENDIF
  565.  
  566. ;
  567. ; pascal long RegisterComponentResourceFile(short resRefNum, short global)
  568. ;
  569.     IF ¨ GENERATINGCFM THEN
  570.         Macro
  571.         _RegisterComponentResourceFile
  572.             moveq               #20,D0
  573.             dc.w                $A82A
  574.         EndM
  575.     ELSE
  576.         IMPORT_CFM_FUNCTION RegisterComponentResourceFile
  577.     ENDIF
  578.  
  579. ;
  580. ; pascal OSErr GetComponentIconSuite(Component aComponent, Handle *iconSuite)
  581. ;
  582.     IF ¨ GENERATINGCFM THEN
  583.         Macro
  584.         _GetComponentIconSuite
  585.             moveq               #41,D0
  586.             dc.w                $A82A
  587.         EndM
  588.     ELSE
  589.         IMPORT_CFM_FUNCTION GetComponentIconSuite
  590.     ENDIF
  591.  
  592.     ENDIF
  593.     ENDIF ; __COMPONENTS__ 
  594.  
  595.